/*!\file  types.h  The main types.
 *
 *      This file is part of the micro-rtos package.
 *
 *  Copyright (c) 2008-2009 by 
		Jan Vysohlid <janvysohlid@gmail.com>
		Gabriel Zabusek <gabriel.zabusek@gmail.com>
 *
 *      This program is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU General Public License
 *      as published by the Free Software Foundation; either version
 *      2 of the License, or (at your option) any later version.
 */

#ifndef __TYPES_H
#define __TYPES_H


typedef unsigned int size_t;
typedef unsigned int uint32_t;
typedef int int32_t;

typedef unsigned int unative_t;
typedef int snative_t;

typedef unsigned char bool_t;

#define TRUE 1
#define FALSE 0

typedef __builtin_va_list va_list;

#define INSTR_SIZE	4

//thread parameter types -> one regular int and one void pointer
//which can be used for any structure
typedef int    dParam;
typedef void * pParam;

#define NULL ((void *)0x00000000)

#define va_start(va_list_pointer, last_param) __builtin_va_start(va_list_pointer, last_param)
#define va_arg(va_list_pointer, type)         __builtin_va_arg(va_list_pointer, type)
#define va_end(va_list_pointer)               __builtin_va_end(va_list_pointer)


#endif
